package cn.tedu.micro.demo.common.pojo.protocol;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 前后端统一格式的类
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class JsonResult<T> {
    Integer code;
    String message;
    T data;
    //由于这个类长期使用,封装接口返回值 所以我定义几个静态方法方便我们创建对象
    //1.返回成功 code=0 就是成功 message="ok" data=null
    public static <T> JsonResult<T> ok(){
        return new JsonResult<>(0,"ok",null);
    }
    //2.返回成功 code=0 data有值
    public static <T> JsonResult<T> ok(T data){
        return new JsonResult<>(0,"ok",data);
    }
    //3.失败返回 code=-1 message根据业务填写失败原因 data=null
    public static <T> JsonResult<T> fail(String message){
        return new JsonResult<>(-1,message,null);
    }
    //4.失败返回 code=-1 message根据业务填写失败原因 data有值
    public static <T> JsonResult<T> fail(String message,T data){
        return new JsonResult<>(-1,message,data);
    }
}
